Unintended data entries from a keyboard or keypad are known to occur due to a variety of reasons, such as electromagnetic interference (EMI), noisy or corroded button contacts, mechanical key bouncing, and human error. Because of one or more of the foregoing problems, a person may intend to press a key once but upon pressing the key, two or more key presses are registered, resulting in a data entry error. As an example, if an operator presses the key marked “4” once, a key bounce error may register a “44” instead of the intended “4.” This is an eleven-fold error. The person may correct the data entry error if he or she becomes aware of the error, such as by being alerted with a display screen, an audible alert signal, or otherwise. Notification and prevention of unintended data entries are especially important in a medical setting, such as when a clinician is entering drug delivery parameters into an infusion pump. However, the presence of such data entry errors and the need to correct them adversely affect work flow efficiency. It is preferable to prevent such errors from occurring in the first instance.
As used herein “keypad” is meant in a general sense and encompasses devices referred to as keyboards, keypads, touch screens, and other data entry devices using discrete, virtual, or other types of keys to enter data. Keypad, keyboard, key, switch, or contact “bounce” is used herein to mean the mechanical rebounding of an electrical contact of a key or switch that occurs before the electrical contact settles to a closed or an open state. “Refractory time” is used herein to mean the time after the previous key press during which another key press will be ignored or rejected.
Unintended numeric entries may be reduced by using a mechanical configuration of a keypad that is less prone to key bounce and by using electronic filters. Additionally, the use of dome or other mechanical switch structures provides beneficial mechanical hysteresis, making it more difficult to unintentionally make duplicate key presses. These designs, while effective, may be more costly, prone to wear or difficult to manufacture compared to other designs. Microprocessor software may also be used to filter out unintended numeric entries by implementing key press “debounce” algorithms or programs that require key presses to satisfy predetermined criteria before they are accepted. For example, a microprocessor may ignore a key press if it has not been pressed down and held “active” for a minimum amount of time. Increasing the amount of time a key must be held active increases confidence that the person intended to press the key, but may also decrease workflow efficiency by inhibiting desired or intentional data entries. Also, if the required active time is too long, a person might unintentionally release the key too soon and an intended data entry will be ignored, thereby creating a new source of data entry error.
Other key press debounce program designs impose a single “refractory time” requirement, e.g. a minimum number of seconds of inactive time between keystrokes. When such a requirement is invoked, the processor will ignore any keystrokes occurring “too soon” after a previously accepted keystroke. Such an approach is used to avoid bounce, but if the length of required inactive time is too long, the speed of data entry can be adversely affected. Data entry personnel who are much faster at entering data on a keypad can be frustrated by a long refractory time, or inactive time, requirements. An inactive time length that satisfies both of the requirements of rapid data entry and prevention of keystroke error due to abnormal key strokes is desirable. While this approach is helpful in reducing data entry errors, it does not detect all abnormal stroking patterns.
As an example, in one key press debounce program design, recognition of a keystroke requires that there be a minimum of twenty milliseconds (“milliseconds”) of inactive key time (key not pressed) followed by twenty milliseconds of active key time (key pressed). This design permits keying at a rate of up to twenty-five keystrokes per second. However, experiments with experienced users indicated that about eight keystrokes per second is the practical upper keying rate with the particular keypad used in the experiments. Allowing more rapid entry, as was possible in this design where only a twenty-millisecond interval and twenty-millisecond press time were required, posed the potential for unintended repeated key press actions being registered. To overcome this potential problem, an algorithm change could be made.
Hence, those skilled in the art have recognized a need for a system and method of monitoring keypad presses to detect and prevent data entry errors while allowing for rapid and efficient data entry.